package dmsxl.haxibiao;

import java.lang.reflect.Array;
import java.util.*;

/**
 * Author: Zhang Dongwei
 * Date: 2023/4/14 21:19
 * 给定两个数组 nums1 和 nums2 ，返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。
 */
public class hxb3_349 {

    public static void main(String[] args) {
//        int[] nums1 = {1, 2, 2, 1};
        int[] nums1 = {4, 5, 9};
//        int[] nums2 = {2, 2};
        int[] nums2 = {9, 4, 9, 8, 4};
        System.out.println(Arrays.toString(intersection(nums1, nums2)));
    }

//自己写的，效果还行，但是代码不简洁
    public static int[] intersection(int[] nums1, int[] nums2) {
        Set<Integer> temp = new HashSet<>();
        Set<Integer> set = new HashSet<>();
        for (int i = 0; i < nums1.length; i++){
            if (!set.contains(nums1[i]))
                set.add(nums1[i]);
        }
        for (int i = 0; i < nums2.length; i++){
            if (set.contains(nums2[i])){
                if (!temp.contains(nums2[i]))
                    temp.add(nums2[i]);
            }
        }
        int[] res = new int[temp.size()];
        int i = 0;
        for (Integer item :temp){
            res[i] = item;
            i++;
        }
        return res;
    }
}
